/*************************************************************************
	> File Name: test9.cc
	> Author: H.M. Lau
	> Mail: hm.lau@outlook.com
	> Created Time: 2023年08月23日 星期三 20时23分11秒
 ************************************************************************/

#include <iostream>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>

using namespace std;

int main() {
    pid_t id = fork();
    if (id < 0) {
        perror("fork");
        exit(-1);
    } else if (id == 0) {
        printf("Child:pid[%d]\n", getpid());
        sleep(20);
        int *p = NULL;
        *p = 10;
        exit(10);
    } else {
        int st;
        int ret = wait(&st);
        if (ret > 0 && !(st & 0x7F)) printf("Child exit code:%d\n", (st >> 8) & 0xff);
        else if (ret > 0) printf("sig code:%d\n", st & 0x7f);
    }
    return 0;
}

